草庐IT

jQuery UI 实例

全部标签

c++ - 什么可以实例化?

C++中哪些类型可以被实例化?我知道下面的每一个都直接创建了一个Foo的实例:Foobar;Foo*bizz=newFoo();但是,对于内置类型呢?以下是否创建了int的两个实例,或者instance是否使用了错误的词并且内存刚刚被分配?intbar2;int*bizz2=newint;指针呢?上面的示例是创建了一个int*实例,还是只是为一个int*分配了内存?使用像42或3.14这样的字面量是否也会创建一个实例?我见过这样的论点,如果你不能子类化一个类型,它就不是一个类,如果它不是一个类,它就不能被实例化。这是真的吗? 最佳答案

C++在循环中实例化模板

我有一个工厂类,它需要用连续的模板参数实例化几个模板,这些模板参数是简单的整数。如何在不展开整个循环的情况下实例化此类模板函数?唯一能想到的就是使用boost预处理器。你能推荐一些不依赖于预处理器的东西吗?谢谢 最佳答案 模板参数必须是编译时常量。目前没有编译器将循环计数器变量视为常量,即使在展开之后也是如此。这可能是因为在模板实例化期间必须知道常量,这发生在循环展开之前。但是可以构造一个“递归”模板并以特化作为结束条件。但即便如此,循环边界也需要是编译时间常量。templateclassloop{loopx;}templatecl

c++ - 在具有指针参数的模板实例化之间进行选择

看下面的测试代码:templatestructWrap{};templateinlinevoidfun(T*&Int)//**choice1**{}templateinlinevoidfun(Wrap*&Int)//**choice2**{}intmain(){inti=6;fun((char*&)(i));//**call1**fun((Wrap*&)(i));//**call2**}当我在linuxg++中运行此代码时,它按预期运行。当使用char*&调用fun()时,它会直接调用选项1的函数。但是,当我们使用Wrap*&调用fun()并调用选项2时,我很感兴趣。即使选项1和2对于

c++ - 使用 std::shared_ptr 对象实例创建 boost::thread

我有以下两个代码段。第一个block按预期编译和工作。但是第二个block不编译。我的问题是,给定下面的代码,当尝试基于由shared_ptr代理的对象实例创建线程时,正确的语法是什么?#include#include#include#includestructfoo{voidboo(){}};intmain(){//Thisworks{foo*fptr=newfoo;boost::threadt(&foo::boo,fptr);t.join();deletefptr;}//Thisdoesn'twork{std::shared_ptrfptr(newfoo);boost::threa

C++ - 实例化派生类并使用基类的构造函数

我有一个基类,它的构造函数需要一个参数(字符串)。然后我有一个派生类,它也有自己的构造函数。我想实例化派生类并能够设置基类的构造函数的参数。classBaseClass{public:BaseClass(stringa);};classDerivedClass:publicBaseClass{public:DerivedClass(stringb);};intmain(){DerivedClassabc("Hello");}调用派生类时不知道如何设置基类构造函数的参数。 最佳答案 您有两种可能性-内联:classDerivedCla

c++ - 我可以在 vector 的一个实例上使用 value_type,而不是它的类型吗

在播放和尝试计算vector的总大小时,我尝试了类似的方法vectorvd;autoarea=vd.size()*sizeof(vd::value_type);//IveseenStepanovuseareaasnameforthiskindofsize,idkifheaddsthesizeofvdalsotoarea:)不幸的是,这不起作用......我需要使用vector::value_type但这会降低代码的可读性。它可以工作吗?我不喜欢sizeofvd.front()因为写front()看起来很难看为此。编辑:decltype变体也适合我所说的丑陋类别......

c++ - 在泛型类的每个实例化中增加编译时变量

我有这门课:templatestructProbe{staticconstuint64_tCounter=N;typedefTType;};我将其用作:typedefProbeFirstIntProbe;typedefProbeSecondIntProbe;typedefProbeFloatProbe;是否可以创建一个编译时\宏方法,允许我在不指定第二个参数的情况下实例化此类,例如:typedefProbeFirstIntProbe;typedefProbeSecondIntProbe;typedefProbeFloatProbe;我认为这是不可能的,但我又一次看到人们用C++做一些我

实例被过度利用。考虑切换到机器类型:g1-small

我使用Ubuntu16.04创建了一个新的F1Micro实例。我还没有登录,因为我还没有弄清楚如何创建SSH密钥对。但是两天后,仪表板现在显示:实例“XXX”已过度充分利用。考虑切换到机器类型:g1-small为什么会发生这种情况?F1微型是否与EC2T1.NANO相似?我有一个t1.nano运行node.js网站(带有nginx,pm2等),在此期间,我的CPU信用始终为150,只有我作为测试用户。我启动了F1Micro以运行相同的节点应用程序,以查看哪些更具成本效益。对我来说,多云的参数是无法解释的“0.2虚拟CPU”。0.2CPU几乎不可用吗?0.5(g1小)会更好吗?看答案为了解决您的

c++ - 检查类是否继承自模板的任何模板实例化

我编写了一个小实用程序来测试类型是否继承了特定模板类的某些模板实例化,直接继承或通过继承继承模板的类。这是通过使用模板函数的SFINAE检查来完成的,该模板函数接受所提供模板的任何模板实例化和默认情况下的回退重载。#include#includetemplateclassT,classU>structisDerivedFrom{staticconstexprboolvalue=decltype(isDerivedFrom::test(U()))::value;private:templatestaticstd::true_typetest(T);staticstd::false_typ

c++ - 模板实例化错误

我有如下定义的模板函数“compare”。#includeusingnamespacestd;templatevoidcompare(constT&a,constT&b){cout当我实例化与相同长度的字符串文字进行比较时,编译器不会报错。当我用不同长度的文字来做时,它说“错误:没有匹配的函数来调用比较(constchar[3],constchar[5])”我很困惑,因为比较函数应该用字符指针而不是实例化字符数组。字符串文字不应该总是衰减为指针吗? 最佳答案 如果您将声明更改为:,您的示例将编译:voidcompare(constT